<?php
class Session
{
	/**
	 * 
	 * Permet de cr�er des sessions pour des utilisateurs ou pour des messages d'affichage. On peut ensuite les lire, les ecrire...
	 */
	public function __construct()
	{
		if(!isset($_SESSION))
		session_start();
	}
	
	/**
	 * 
	 *Permet de cr�er un message de session dans le cas de suppression ou d'ajout ou de modification et faire passer des messages d'erreurs ou de succes
	 * @param $message le message � faire passer
	 * @param $type type du passage � faire passer
	 */
	
	public function setFlash($message,$type='success')
	{
		$_SESSION['flash']=array(
			'message'=>$message,
			'type'=>$type
		);
	}
	
	/**
	 * 
	 * Permet d'afficher un message se trouvant dans la session active
	 */
	public function flash()
	{
		if ((isset($_SESSION['flash']['message'])))
		{
			$html='<div id="flash"><p>'.$_SESSION['flash']['message'].'</p></div>';
			$_SESSION['flash']=array();
			return $html;
		}

	}
	
	/**
	 * 
	 * Permet d'ecrire une session avec une cl� et sa valeur
	 * @param  $key champ de session 
	 * @param  $value la valeur du champ de session
	 */
	public function write($key,$value)
	{
		$_SESSION[$key]=$value;
		
	}
	
	/**
	 * 
	 * Permet de lire un champ contenu dans la session active
	 * @param  $key le champ � lire
	 */
	public function read($key=null)
	{
		if($key)
		{	if (isset($_SESSION[$key]))
				return $_SESSION[$key];
			else
				return false;
		}
		else
			return $_SESSION;	
	}
	
	/**
	 * 
	 * Permet de savoir si un utilisateur est connect�
	 */
	public function isLogged()
	{
		return isset($_SESSION['User']['cactus']);
	}
	
	/**
	 * 
	 * Permet de lire les informations de sessions d'un utilisateur
	 * @param $key utilisateur dont on veut savoir les informations
	 */
	public function user($key)
	{
		if($this->read('User'))
		{
			if(isset($this->read('User')->$key))
			{
				return $this->read('User')->$key;
			}
			else 
			{
				return false;
			}
		}
		return false;
	}
	
}